const formRules = function(name, value){

    // if( !isSqlInjection(value).successful ){
    //     return {
    //         status: false,
    //         result: '非法字符，请检查输入'
    //     } 
    // }

    if( name == 'common' && ( !value || value == undefined ) ){ //通用 是否必填
        return {
            status: false,
            result: '内容不能为空'
        }
    }

    var phoneReg = /^1[3-578]\d{9}$/;
    if(name == 'tel' && !phoneReg.test(value)) {
        return {
            status: false,
            result: '请检查电话号码'
        }
    }
    
    /**
     * 身份证
     * 1. 身份证号合法性验证  2.支持15位和18位身份证号 3.支持地址编码、出生日期、校验位验证
     */
    var idCardReg = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/;
    if( name == 'idcard' && !idCardReg.test(value) ){
        return {
            status: false,
            result: '身份证信息错误'
        }
    }

    /**
     * 提供一个方法，判断 SQL WHERE 从句中参数是否包含 SQL 关键字，用于防止 SQL 注入攻击。
     * 
     * @param p_str
     *  一个字符串 要检查的值。
     */
    function isSqlInjection(p_str) {
        var regex = /(\sand\s)|(\sor\s)|(\slike\s)|(select\s)|(insert\s)|(delete\s)|(update\s[\s\S].*\sset)|(create\s)|(\stable)|(\sexec)|(declare)|(\struncate)|(\smaster)|(\sbackup)|(\smid)|(\scount)|(\sadd\s)|(\salter\s)|(\sdrop\s)|(\sfrom\s)|(\struncate\s)|(\sunion\s)|(\sjoin\s)|(')/;
        var result = [];
        var successful = !regex.test(p_str);
        var matches = p_str.match(regex);
        var hint = p_str;
        if (matches && matches[0]) {
          hint = matches[0];
        }
    
        return {
          status : successful,
          result : hint
        };
    }
    // console.log( '非法输入',isSqlInjection(`and,delete,or,exec,insert,select,union,update,count,*,',join,>,<`) )
}

module.exports = {
    formRules: formRules,
}